gusucode.com > VC++ EMF图片浏览器(可读emf、wmf、emz、wmz、png……等)-源码程序 > VC++ EMF图片浏览器(可读emf、wmf、emz、wmz、png……等)-源码程序/code/Src/Client/scemflib/SCEMFViewHelpers.cpp

    //Download by http://www.NewXing.com
/*
*	This file is part of the EMFexplorer projet.
*	Copyright (C) 2004 Smith Charles.
*
*	This library is free software; you can redistribute it and/or
*	modify it under the terms of the GNU Lesser General Public
*	License as published by the Free Software Foundation; either
*	version 2.1 of the License, or (at your option) any later version.
*
*   This library is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*   Lesser General Public License for more details.
*
*   You should have received a copy of the GNU Lesser General Public
*   License along with this library; if not, write to the Free Software
*   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
*
*	Extension: for commercial use, apply the Equity Public License, which
*	adds to the normal terms of the GLPL a condition of donation to the author.
*   If you are interested in support for this source code,
*   contact Smith Charles <smith.charles@free.fr> for more information.
*/


#include "stdafx.h"
#include "SCEMFViewHelpers.h"
#include "SCEMFViewDefs.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////

#define SC_COLORSCHEME_ADDCOLOR(colorUsage) \
	ulColorScheme &= ~SC_CSM_##colorUsage##_MASK; \
	switch (iColorStyle) \
	{ \
	case SC_COLOR_TRANSPARENT: \
		ulColorScheme |= SC_CSM_##colorUsage##_TRANSPARENT; \
		break; \
		\
	case SC_COLOR_SYSINDEX: \
		ulColorScheme |= SC_CSM_##colorUsage##_SYSINDEX; \
		crColor = SC_MAKE_SYSCOLOR(crColor); \
		break; \
		 \
	case SC_COLOR_RGBVALUE: \
	default: \
		ulColorScheme |= SC_CSM_##colorUsage##_RGBVALUE; \
		break; \
	}

void SCSchemeAdd_CtlColor(ULONG& ulColorScheme, COLORREF& crColor, int iColorStyle)
{
	SC_COLORSCHEME_ADDCOLOR(CTLCOLOR)
}

void SCSchemeAdd_PaperColor(ULONG& ulColorScheme, COLORREF& crColor, int iColorStyle)
{
	SC_COLORSCHEME_ADDCOLOR(PAPERCOLOR)
}

/////////////////////////////////////////////////////////////////////////////

#define SC_COLORSCHEME_ADDBORDER(BorderShadow) \
	ulColorScheme &= ~SC_CSM_##BorderShadow##_MASK; \
	ulColorScheme |= (bVisible) ? SC_CSM_##BorderShadow##_YES: SC_CSM_##BorderShadow##_NONE;


void SCSchemeAdd_Border(ULONG& ulColorScheme, BOOL bVisible)
{
	SC_COLORSCHEME_ADDBORDER(BORDER)
}

void SCSchemeAdd_Shadow(ULONG& ulColorScheme, BOOL bVisible)
{
	SC_COLORSCHEME_ADDBORDER(SHADOW)
}